<?xml version="1.0"?>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<refentry id="depmod.d">
  <refentryinfo>
    <title>depmod.d</title>
    <productname>kmod</productname>

    <authorgroup>
      <author>
        <contrib>Developer</contrib>
        <firstname>Jon</firstname>
        <surname>Masters</surname>
        <email>jcm@jonmasters.org</email>
      </author>
      <author>
        <contrib>Developer</contrib>
        <firstname>Robby</firstname>
        <surname>Workman</surname>
        <email>rworkman@slackware.com</email>
      </author>
      <author>
        <contrib>Developer</contrib>
        <firstname>Lucas</firstname>
        <surname>De Marchi</surname>
        <email>lucas.de.marchi@gmail.com</email>
      </author>
    </authorgroup>
  </refentryinfo>

  <refmeta>
    <refentrytitle>depmod.d</refentrytitle>
    <manvolnum>5</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>depmod.d</refname>
    <refpurpose>Configuration directory for depmod</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>/usr/lib/depmod.d/*.conf</filename></para>
    <para><filename>/etc/depmod.d/*.conf</filename></para>
    <para><filename>/run/depmod.d/*.conf</filename></para>
  </refsynopsisdiv>

  <refsect1><title>DESCRIPTION</title>
    <para>The order in which modules are processed by the
      <command>depmod</command> command can be altered on a global or
      per-module basis. This is typically useful in cases where built-in
      kernel modules are complemented by custom built versions of the
      same and the user wishes to affect the priority of processing in
      order to override the module version supplied by the kernel.
    </para>
    <para>
      The format of files under <filename>depmod.d</filename> is simple: one
      command per line, with blank lines and lines starting with '#'
      ignored (useful for adding comments).  A '\' at the end of a line
      causes it to continue on the next line, which makes the files a
      bit neater.
    </para>
  </refsect1>
  <refsect1>
    <title>COMMANDS</title>
    <variablelist>
      <varlistentry>
        <term>search <replaceable>subdirectory...</replaceable>
        </term>
        <listitem>
          <para>
            This allows you to specify the order in which /lib/modules
            (or other configured module location) subdirectories will
            be processed by <command>depmod</command>. Directories are
            listed in order, with the highest priority given to the
            first listed directory and the lowest priority given to the last
            directory listed. The special keyword <command>built-in</command> 
            refers to the standard module directories installed by the kernel.
            Another special keyword <command>external</command> refers to the
            list of external directories, defined by the
            <command>external</command> command.
          </para>
          <para>
            By default, depmod will give a higher priority to 
            a directory with the name <command>updates</command>
            using this built-in search string: "updates built-in"
            but more complex arrangements are possible and are
            used in several popular distributions.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>override <replaceable>modulename</replaceable> <replaceable>kernelversion</replaceable> <replaceable>modulesubdirectory</replaceable>
        </term>
        <listitem>
          <para>
            This command allows you to override which version of a
            specific module will be used when more than one module
            sharing the same name is processed by the
            <command>depmod</command> command. It is possible to
            specify one kernel or all kernels using the * wildcard.
            <replaceable>modulesubdirectory</replaceable> is the
            name of the subdirectory under /lib/modules (or other
            module location) where the target module is installed.
          </para>
          <para>
            For example, it is possible to override the priority of
            an updated test module called <command>kmod</command> by
            specifying the following command: "override kmod * extra".
            This will ensure that any matching module name installed
            under the <command>extra</command> subdirectory within
            /lib/modules (or other module location) will take priority
            over any likenamed module already provided by the kernel.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>external <replaceable>kernelversion</replaceable>
        <replaceable>absolutemodulesdirectory...</replaceable>
        </term>
        <listitem>
          <para>
            This specifies a list of directories, which will be checked
            according to the priorities in the <command>search</command>
            command. The order matters also, the first directory has the higher
            priority.
          </para>
          <para>
            The <replaceable>kernelversion</replaceable> is a POSIX regular
            expression or * wildcard, like in the <command>override</command>.
          </para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1><title>COPYRIGHT</title>
    <para>
      This manual page Copyright 2006-2010, Jon Masters, Red Hat, Inc.
    </para>
  </refsect1>
  <refsect1><title>SEE ALSO</title>
    <para>
      <citerefentry>
        <refentrytitle>depmod</refentrytitle><manvolnum>8</manvolnum>
      </citerefentry>
    </para>
  </refsect1>
</refentry>
